package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 记录采购实际付款对象 oa_othera_purchase
 *
 * @author ruoyi
 * @date 2025-05-14
 */
public class OaOtheraPurchase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @Excel(name = "id")
    private Long id;

    /** 实际金额 */
    @Excel(name = "实际金额")
    private BigDecimal actualPrice;

    /** 付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentDate;

    /** 付款金额 */
    @Excel(name = "付款金额")
    private String paymentAmount;

    /** 发票情况（是 否） */
    @Excel(name = "发票情况", readConverterExp = "是=,否=")
    private String invoiceStatus;

    /** 发票 */
    @Excel(name = "发票")
    private String uploadedInvoice;

    /** 报销/付款日期 */
    @Excel(name = "报销/付款日期")
    private String reimbursementPaymentDate;

    /** 支付账号 */
    @Excel(name = "支付账号")
    private String paymentAccount;

    /** 立项编号 */
    @Excel(name = "立项编号")
    private String initiationId;

    /** 供应商名 */
    @Excel(name = "供应商名")
    private String purchaseTableSequence;

    /** 0 未增项无需审核，1 已增项需要审核 2审核完成 */
    @Excel(name = "0 未增项无需审核，1 已增项需要审核 2审核完成")
    private Integer isAdditionalItem;

    /** 经办人 */
    @Excel(name = "经办人")
    private String filler;

    /** 类型 */
    @Excel(name = "类型")
    private String type;

    /** 发票金额 */
    @Excel(name = "发票金额")
    private BigDecimal invoicePrice;

    /** 发票审核（0无需审核 1未审核 2已审核 3驳回） */
    @Excel(name = "发票审核", readConverterExp = "0=无需审核,1=未审核,2=已审核,3=驳回")
    private String invoiceReview;

    /** 发票审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发票审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceReviewdate;

    /** 李琨审批 0不需要审批 1未审批 2已审批 3已驳回 */
    @Excel(name = "李琨审批 0不需要审批 1未审批 2已审批 3已驳回")
    private String liApprove;

    /** 刘昕审批 0不需要审批 1未审批 2已审批 3已驳回 */
    @Excel(name = "刘昕审批 0不需要审批 1未审批 2已审批 3已驳回")
    private String liuApprove;

    /** 负责人审批 0不需要审批 1未审批 2已审批 3已驳回 */
    @Excel(name = "负责人审批 0不需要审批 1未审批 2已审批 3已驳回")
    private String principalApprove;

    /** 粉表id */
    @Excel(name = "粉表id")
    private Long oaOtherId;

    /** 已审金额 */
    @Excel(name = "已审金额")
    private BigDecimal verifiedAmount;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setActualPrice(BigDecimal actualPrice)
    {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getActualPrice()
    {
        return actualPrice;
    }

    public void setPaymentDate(Date paymentDate)
    {
        this.paymentDate = paymentDate;
    }

    public Date getPaymentDate()
    {
        return paymentDate;
    }

    public void setPaymentAmount(String paymentAmount)
    {
        this.paymentAmount = paymentAmount;
    }

    public String getPaymentAmount()
    {
        return paymentAmount;
    }

    public void setInvoiceStatus(String invoiceStatus)
    {
        this.invoiceStatus = invoiceStatus;
    }

    public String getInvoiceStatus()
    {
        return invoiceStatus;
    }

    public void setUploadedInvoice(String uploadedInvoice)
    {
        this.uploadedInvoice = uploadedInvoice;
    }

    public String getUploadedInvoice()
    {
        return uploadedInvoice;
    }

    public void setReimbursementPaymentDate(String reimbursementPaymentDate)
    {
        this.reimbursementPaymentDate = reimbursementPaymentDate;
    }

    public String getReimbursementPaymentDate()
    {
        return reimbursementPaymentDate;
    }

    public void setPaymentAccount(String paymentAccount)
    {
        this.paymentAccount = paymentAccount;
    }

    public String getPaymentAccount()
    {
        return paymentAccount;
    }

    public void setInitiationId(String initiationId)
    {
        this.initiationId = initiationId;
    }

    public String getInitiationId()
    {
        return initiationId;
    }

    public void setPurchaseTableSequence(String purchaseTableSequence)
    {
        this.purchaseTableSequence = purchaseTableSequence;
    }

    public String getPurchaseTableSequence()
    {
        return purchaseTableSequence;
    }

    public void setIsAdditionalItem(Integer isAdditionalItem)
    {
        this.isAdditionalItem = isAdditionalItem;
    }

    public Integer getIsAdditionalItem()
    {
        return isAdditionalItem;
    }

    public void setFiller(String filler)
    {
        this.filler = filler;
    }

    public String getFiller()
    {
        return filler;
    }

    public void setType(String type)
    {
        this.type = type;
    }

    public String getType()
    {
        return type;
    }

    public void setInvoicePrice(BigDecimal invoicePrice)
    {
        this.invoicePrice = invoicePrice;
    }

    public BigDecimal getInvoicePrice()
    {
        return invoicePrice;
    }

    public void setInvoiceReview(String invoiceReview)
    {
        this.invoiceReview = invoiceReview;
    }

    public String getInvoiceReview()
    {
        return invoiceReview;
    }

    public void setInvoiceReviewdate(Date invoiceReviewdate)
    {
        this.invoiceReviewdate = invoiceReviewdate;
    }

    public Date getInvoiceReviewdate()
    {
        return invoiceReviewdate;
    }

    public void setLiApprove(String liApprove)
    {
        this.liApprove = liApprove;
    }

    public String getLiApprove()
    {
        return liApprove;
    }

    public void setLiuApprove(String liuApprove)
    {
        this.liuApprove = liuApprove;
    }

    public String getLiuApprove()
    {
        return liuApprove;
    }

    public void setPrincipalApprove(String principalApprove)
    {
        this.principalApprove = principalApprove;
    }

    public String getPrincipalApprove()
    {
        return principalApprove;
    }

    public void setOaOtherId(Long oaOtherId)
    {
        this.oaOtherId = oaOtherId;
    }

    public Long getOaOtherId()
    {
        return oaOtherId;
    }

    public void setVerifiedAmount(BigDecimal verifiedAmount)
    {
        this.verifiedAmount = verifiedAmount;
    }

    public BigDecimal getVerifiedAmount()
    {
        return verifiedAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("actualPrice", getActualPrice())
                .append("paymentDate", getPaymentDate())
                .append("paymentAmount", getPaymentAmount())
                .append("invoiceStatus", getInvoiceStatus())
                .append("uploadedInvoice", getUploadedInvoice())
                .append("reimbursementPaymentDate", getReimbursementPaymentDate())
                .append("paymentAccount", getPaymentAccount())
                .append("initiationId", getInitiationId())
                .append("purchaseTableSequence", getPurchaseTableSequence())
                .append("isAdditionalItem", getIsAdditionalItem())
                .append("filler", getFiller())
                .append("type", getType())
                .append("createTime", getCreateTime())
                .append("invoicePrice", getInvoicePrice())
                .append("invoiceReview", getInvoiceReview())
                .append("invoiceReviewdate", getInvoiceReviewdate())
                .append("liApprove", getLiApprove())
                .append("liuApprove", getLiuApprove())
                .append("principalApprove", getPrincipalApprove())
                .append("oaOtherId", getOaOtherId())
                .append("verifiedAmount", getVerifiedAmount())
                .toString();
    }
}
